//********************************************************************************************************************//
//ORGANIZATION:
//AUTHOR: bpeng(bogers.peng@gmail.com)
//SUMMARY:
//********************************************************************************************************************//
#ifndef NATIVE_DOMAIN_COMPILING_COMMON_OBSERVABLE_H
#define NATIVE_DOMAIN_COMPILING_COMMON_OBSERVABLE_H

#ifndef NATIVE_SYSTEM_BASE_OBJECT_H
#include "System/Base/Object.h"
#endif
#ifndef NATIVE_DOMAIN_COMPILING_COMMON_CAST_H
#include "Domain/Compiling/Common/Cast.h"
#endif

namespace Native { namespace Compiling
{
    //****************************************************************************************************************//
    //IObserve
    //
    //****************************************************************************************************************//
    template<typename _TProdutor>
    struct NATIVE_LIBRARY_EXPORT IObserve
    {
        virtual void Send(const ICast<_TProdutor>* source) = 0;
    };
}}

#endif